////////////////////////////////////////////////////////////////////////////////

#ifndef _BULLET_H_
#include "bullet.h"
#endif

////////////////////////////////////////////////////////////////////////////////

#ifndef _PLAYER_H_
#include "player.h"
#endif

////////////////////////////////////////////////////////////////////////////////

const double bulletRadius = 8.0;
const double bulletMass = 10.0;

////////////////////////////////////////////////////////////////////////////////


Bullet::Bullet( int _ID,
                PE::Point _position,
                PE::Vector _velocity,
                int _damage,
                int _playerID )
: GameObject(_ID, _position, _velocity, bulletMass, bulletRadius),
  m_Damage(_damage),
  m_PlayerID(_playerID),
  m_IsDestroyed(false)
{
}


////////////////////////////////////////////////////////////////////////////////


Bullet::~Bullet()
{
}


////////////////////////////////////////////////////////////////////////////////


int Bullet::GetDamage() const
{
    return m_Damage;
}


////////////////////////////////////////////////////////////////////////////////


void Bullet::SetDamage( int _damage )
{
    m_Damage = _damage;
}


////////////////////////////////////////////////////////////////////////////////


void Bullet::Collision(const PhysicalObject* _obj)
{
    const GameObject* obj = GetGameObject(_obj);

    if ( !obj->IsBullet() )
        m_IsDestroyed = true;
}


////////////////////////////////////////////////////////////////////////////////


bool Bullet::IsBullet() const
{
    return true;
}


////////////////////////////////////////////////////////////////////////////////


int Bullet::GetPlayerID() const
{
    return m_PlayerID;
}


////////////////////////////////////////////////////////////////////////////////


bool Bullet::IsDestroyed() const
{
    return m_IsDestroyed;
}


////////////////////////////////////////////////////////////////////////////////
